route.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { NextRequest, NextResponse } from "next/server";
  2. import { restApiFetch } from "@/utils/bagisto";
  3. import { isBagistoError } from "@/utils/type-guards";
  4. import { getAuthToken } from "@/utils/helper";
  5. type Params = Promise<{ id: string }>;
  6. export async function GET(req: NextRequest, { params }: { params: Params }) {
  7. try {
  8. const { id } = await params; // 解包拿到订单ID
  9. const guestToken = getAuthToken(req);
  10. const apiUrl = `/customer/orders/${id}`;
  11. console.log("最终请求API地址:", apiUrl);
  12. const response = await restApiFetch<any>({
  13. api: apiUrl,
  14. method: "GET",
  15. cache: "no-store",
  16. guestToken,
  17. });
  18. return NextResponse.json({
  19. status: response.status,
  20. data: response.body,
  21. });
  22. } catch (error) {
  23. if (isBagistoError(error)) {
  24. return NextResponse.json(
  25. {
  26. data: null,
  27. error: error.cause ?? error,
  28. },
  29. { status: 200 }
  30. );
  31. }
  32. return NextResponse.json(
  33. {
  34. message: "Network error",
  35. error: error instanceof Error ? error.message : error,
  36. },
  37. { status: 500 }
  38. );
  39. }
  40. }